function isNotEmpty(str) {
  return str !== undefined && str !== null && str.trim().length > 0;
}

function isEmpty(str) {
  return !isNotEmpty(str);
}

/**
 * 判断字符串是否为数字
 *
 * @param str {string}
 * @returns {boolean}
 */
function isNumeric(str) {
  return /^\d+$/.test(str);
}

/**
 * 将驼峰式命名的字符串转换为下划线命名的字符串
 *
 * @param str {string} 要转换的字符串
 * @returns {string}
 */
function toSnakeCase(str) {
  if (isEmpty(str)) {
    return str;
  }
  return str.replace(/([A-Z])/g, '_$1').toLowerCase();
}

const StringUtil = {
  isNotEmpty,
  isEmpty,
  isNumeric,
  toSnakeCase
};

export default StringUtil;
